<feed xmlns='http://www.w3.org/2005/Atom'>
<title>home-sveltekit/src/routes/projects/[id]/+page.server.ts, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<id>https://git.kagamino.dev/home-sveltekit/atom?h=main</id>
<link rel='self' href='https://git.kagamino.dev/home-sveltekit/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/'/>
<updated>2026-09-30T20:13:07Z</updated>
<entry>
<title>Allow granular routine frequencies like 5/2w</title>
<updated>2026-09-30T20:13:07Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-30T20:13:07Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=a725d4c7d28fee701b6997cc46cffddefbcd26bf'/>
<id>urn:sha1:a725d4c7d28fee701b6997cc46cffddefbcd26bf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>improve projects layout on mobile</title>
<updated>2026-09-12T08:58:39Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-12T08:58:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=012a1dc35c69cb51ff15b21f8303787b5299a626'/>
<id>urn:sha1:012a1dc35c69cb51ff15b21f8303787b5299a626</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Migrate date handling from Date to Temporal API</title>
<updated>2026-09-08T15:06:51Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-08T15:06:51Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=bd2f982c489b15ce1165c051fdedf35af979f784'/>
<id>urn:sha1:bd2f982c489b15ce1165c051fdedf35af979f784</id>
<content type='text'>
Routine scheduling, health series, service stamps, session expiry, and
date formatting move to native Temporal (Instant / ZonedDateTime in
UTC), with ISO strings kept at DB and chart boundaries. Ambient types
in src/temporal-ambient.d.ts cover the native runtime; no polyfill.
Observable behavior and stored formats are unchanged.
</content>
</entry>
<entry>
<title>Project health chart on LayerChart</title>
<updated>2026-09-08T11:44:59Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-08T11:44:59Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=212c3adc8a584e6517a2816fc6683688d5ac5d7a'/>
<id>urn:sha1:212c3adc8a584e6517a2816fc6683688d5ac5d7a</id>
<content type='text'>
Project page gets a Sante chart: daily mean of per-routine health
via computeProjectHealthSeries, ending at the current health score.
Both charts share a HealthChart component built on LayerChart's
AreaChart (time x-axis, fixed 0-100 y-axis, completion dots).
</content>
</entry>
<entry>
<title>Deduplicate routine actions and badges across project routes</title>
<updated>2026-09-08T06:57:08Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-08T06:57:08Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=4b2b964283075712de98743720ff3e31370ddc8e'/>
<id>urn:sha1:4b2b964283075712de98743720ff3e31370ddc8e</id>
<content type='text'>
- Share edit/complete/archive form actions in routine-actions.ts; route
  servers become thin wrappers (strictest guard semantics in one place)
- Move parseFrequencyDays into validation.ts
- Extract ScoreBadge/StatusBadge components; use on project pages and
  the home page instead of duplicated scoreClass/statusClass helpers
- Fix archiveProject calling the routine archive with the project id
</content>
</entry>
<entry>
<title>Add routine archives: archive date, searchable archived list, frozen page</title>
<updated>2026-09-07T20:31:23Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-07T20:31:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=992e40835af1600a0961ec2454fb78ff43aec3c6'/>
<id>urn:sha1:992e40835af1600a0961ec2454fb78ff43aec3c6</id>
<content type='text'>
- Stamp archived_at on the archived snapshot; copy it on edit
- loadArchived(projectId) + collapsible fuzzy-searched "Archivées" section on the project page
- Archived routine pages open read-only with the health chart ending at the archive date; edit/complete actions reject archived routines
</content>
</entry>
<entry>
<title>Add routine detail page with editable description and health history</title>
<updated>2026-09-07T17:17:45Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-07T17:17:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=37573109a05a07ac50827759ea63793209baa73a'/>
<id>urn:sha1:37573109a05a07ac50827759ea63793209baa73a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add projects with routines, urgency tracking and health scores</title>
<updated>2026-09-07T09:32:41Z</updated>
<author>
<name>Martin Kagamino Lehoux</name>
<email>martin@lehoux.net</email>
</author>
<published>2026-09-07T09:32:41Z</published>
<link rel='alternate' type='text/html' href='https://git.kagamino.dev/home-sveltekit/commit/?id=18a0f9c874aaa09c0f71252dad853c23f9511ed6'/>
<id>urn:sha1:18a0f9c874aaa09c0f71252dad853c23f9511ed6</id>
<content type='text'>
Projects group recurring routines (chores included) with an append-only
snapshot table (id, version) so edits never rewrite history; completions
reference the exact snapshot. Pure metrics compute due dates, urgency
buckets (ok/due/late/veryLate) and 0-100 health scores per routine,
project, and globally. Home page lists projects; project dashboard sorts
routines most-urgent first with one-tap completion and interval parser
inputs (1d/2w/3m/1y).
</content>
</entry>
</feed>
